<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Frames.java</title>
</head>
<body bgcolor="white">
<pre><tt><font color="#000000">001:</font> <i><font color="#9A1900">// KA-Suspend/Frames.java</font></i>
<font color="#000000">002:</font>  
<font color="#000000">003:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>awt<font color="#990000">.*;</font>
<font color="#000000">004:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>awt<font color="#990000">.</font>event<font color="#990000">.*;</font>
<font color="#000000">005:</font> <b><font color="#000080">import</font></b> javax<font color="#990000">.</font>swing<font color="#990000">.*;</font>
<font color="#000000">006:</font> 
<font color="#000000">007:</font> <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">class</font></b> <font color="#009900">Frames</font> <b><font color="#0000FF">extends</font></b> JFrame <font color="#FF0000">{</font>
<font color="#000000">008:</font> 
<font color="#000000">009:</font>     <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">static</font></b> <font color="#009900">void</font> <b><font color="#000000">main</font></b><font color="#990000">(</font>String<font color="#990000">[]</font> args<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">010:</font>         <b><font color="#0000FF">new</font></b> <b><font color="#000000">Frames</font></b><font color="#990000">();</font>
<font color="#000000">011:</font>     <font color="#FF0000">}</font>
<font color="#000000">012:</font> 
<font color="#000000">013:</font>     <b><font color="#0000FF">public</font></b> <b><font color="#000000">Frames</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">014:</font>         <b><font color="#000000">setDefaultCloseOperation</font></b><font color="#990000">(</font>EXIT_ON_CLOSE<font color="#990000">);</font>
<font color="#000000">015:</font>         <b><font color="#000000">setTitle</font></b><font color="#990000">(</font><font color="#FF0000">"Ramki"</font><font color="#990000">);</font>
<font color="#000000">016:</font>         <b><font color="#000000">setLocation</font></b><font color="#990000">(</font><font color="#993399">50</font><font color="#990000">,</font><font color="#993399">50</font><font color="#990000">);</font>
<font color="#000000">017:</font>         <b><font color="#000000">setResizable</font></b><font color="#990000">(</font><b><font color="#0000FF">false</font></b><font color="#990000">);</font>
<font color="#000000">018:</font> 
<font color="#000000">019:</font>         OurPanel panel <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">OurPanel</font></b><font color="#990000">();</font>
<font color="#000000">020:</font>         <b><font color="#000000">add</font></b><font color="#990000">(</font>panel<font color="#990000">,</font>BorderLayout<font color="#990000">.</font>CENTER<font color="#990000">);</font>
<font color="#000000">021:</font>         <b><font color="#000000">pack</font></b><font color="#990000">();</font>
<font color="#000000">022:</font>         <b><font color="#000000">setVisible</font></b><font color="#990000">(</font><b><font color="#0000FF">true</font></b><font color="#990000">);</font>
<font color="#000000">023:</font>     <font color="#FF0000">}</font>
<font color="#000000">024:</font> <font color="#FF0000">}</font>
<font color="#000000">025:</font> 
<font color="#000000">026:</font> <b><font color="#0000FF">class</font></b> <font color="#009900">OurPanel</font> <b><font color="#0000FF">extends</font></b> JPanel <font color="#FF0000">{</font>
<font color="#000000">027:</font>     <b><font color="#0000FF">static</font></b> <font color="#009900">int</font> NUM <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font>
<font color="#000000">028:</font>     <b><font color="#0000FF">static</font></b> <b><font color="#0000FF">final</font></b> <font color="#009900">int</font> WI<font color="#990000">=</font><font color="#993399">70</font><font color="#990000">,</font> HE<font color="#990000">=</font><font color="#993399">190</font><font color="#990000">;</font>
<font color="#000000">029:</font>     <b><font color="#0000FF">static</font></b> <b><font color="#0000FF">final</font></b> Dimension DIM <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">Dimension</font></b><font color="#990000">(</font>WI<font color="#990000">,</font>HE<font color="#990000">);</font>
<font color="#000000">030:</font>     <b><font color="#0000FF">static</font></b> <b><font color="#0000FF">final</font></b> <font color="#009900">int</font> ILE_RAMEK <font color="#990000">=</font> <font color="#993399">8</font><font color="#990000">;</font>
<font color="#000000">031:</font>     <b><font color="#0000FF">static</font></b> <b><font color="#0000FF">final</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font>Random rand <font color="#990000">=</font>
<font color="#000000">032:</font>         <b><font color="#0000FF">new</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font><b><font color="#000000">Random</font></b><font color="#990000">(</font>System<font color="#990000">.</font><b><font color="#000000">currentTimeMillis</font></b><font color="#990000">());</font>
<font color="#000000">033:</font>     <b><font color="#0000FF">static</font></b> <b><font color="#0000FF">final</font></b> Color<font color="#990000">[]</font> kol <font color="#990000">=</font> <font color="#FF0000">{</font>
<font color="#000000">034:</font>                      Color<font color="#990000">.</font>RED<font color="#990000">,</font>     Color<font color="#990000">.</font>YELLOW<font color="#990000">,</font>
<font color="#000000">035:</font>                      Color<font color="#990000">.</font>MAGENTA<font color="#990000">,</font> Color<font color="#990000">.</font>GREEN<font color="#990000">,</font>
<font color="#000000">036:</font>                      Color<font color="#990000">.</font>CYAN<font color="#990000">,</font>    Color<font color="#990000">.</font>BLUE<font color="#990000">,</font>
<font color="#000000">037:</font>                      Color<font color="#990000">.</font>ORANGE<font color="#990000">,</font>  Color<font color="#990000">.</font>PINK<font color="#990000">,</font>
<font color="#000000">038:</font>                  <font color="#FF0000">}</font><font color="#990000">;</font>
<font color="#000000">039:</font> 
<font color="#000000">040:</font>     <b><font color="#000000">OurPanel</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">041:</font>         <b><font color="#000000">setLayout</font></b><font color="#990000">(</font><b><font color="#0000FF">new</font></b> <b><font color="#000000">GridLayout</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">,</font>ILE_RAMEK<font color="#990000">,</font><font color="#993399">5</font><font color="#990000">,</font><font color="#993399">5</font><font color="#990000">));</font>
<font color="#000000">042:</font>         <b><font color="#000000">setBackground</font></b><font color="#990000">(</font>Color<font color="#990000">.</font>GRAY<font color="#990000">);</font>
<font color="#000000">043:</font>         <b><font color="#0000FF">for</font></b> <font color="#990000">(</font> <font color="#009900">int</font> i <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> ILE_RAMEK<font color="#990000">;</font> <font color="#990000">++</font>i <font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">044:</font>             JPanel p <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">JPanel</font></b><font color="#990000">();</font>
<font color="#000000">045:</font>             p<font color="#990000">.</font><b><font color="#000000">setLayout</font></b><font color="#990000">(</font><b><font color="#0000FF">new</font></b> <b><font color="#000000">BorderLayout</font></b><font color="#990000">());</font>
<font color="#000000">046:</font>             <b><font color="#0000FF">final</font></b> Ramka r <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">Ramka</font></b><font color="#990000">();</font>
<font color="#000000">047:</font>             JButton button <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">JButton</font></b><font color="#990000">(</font>
<font color="#000000">048:</font>                              <b><font color="#0000FF">new</font></b> <b><font color="#000000">AbstractAction</font></b><font color="#990000">(</font><font color="#FF0000">"Go!"</font><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">049:</font>                 <b><font color="#0000FF">public</font></b> <font color="#009900">void</font>
<font color="#000000">050:</font>                 <b><font color="#000000">actionPerformed</font></b><font color="#990000">(</font>ActionEvent e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">051:</font>                     JButton b <font color="#990000">=</font> <font color="#990000">(</font>JButton<font color="#990000">)</font>e<font color="#990000">.</font><b><font color="#000000">getSource</font></b><font color="#990000">();</font>
<font color="#000000">052:</font>                     <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>r<font color="#990000">.</font>suspended<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">053:</font>                         r<font color="#990000">.</font>suspended <font color="#990000">=</font> <b><font color="#0000FF">false</font></b><font color="#990000">;</font>
<font color="#000000">054:</font>                         b<font color="#990000">.</font><b><font color="#000000">setText</font></b><font color="#990000">(</font><font color="#FF0000">"Susp"</font><font color="#990000">);</font>
<font color="#000000">055:</font>                         <b><font color="#0000FF">synchronized</font></b><font color="#990000">(</font>r<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">056:</font>                             r<font color="#990000">.</font><b><font color="#000000">notify</font></b><font color="#990000">();</font>
<font color="#000000">057:</font>                         <font color="#FF0000">}</font>
<font color="#000000">058:</font>                     <font color="#FF0000">}</font> <b><font color="#0000FF">else</font></b> <font color="#FF0000">{</font>
<font color="#000000">059:</font>                         r<font color="#990000">.</font>suspended <font color="#990000">=</font> <b><font color="#0000FF">true</font></b><font color="#990000">;</font>
<font color="#000000">060:</font>                         b<font color="#990000">.</font><b><font color="#000000">setText</font></b><font color="#990000">(</font><font color="#FF0000">"Go!"</font><font color="#990000">);</font>
<font color="#000000">061:</font>                     <font color="#FF0000">}</font>
<font color="#000000">062:</font>                 <font color="#FF0000">}</font>
<font color="#000000">063:</font>             <font color="#FF0000">}</font><font color="#990000">);</font>
<font color="#000000">064:</font>             p<font color="#990000">.</font><b><font color="#000000">add</font></b><font color="#990000">(</font>button<font color="#990000">,</font>BorderLayout<font color="#990000">.</font>NORTH<font color="#990000">);</font>
<font color="#000000">065:</font>             p<font color="#990000">.</font><b><font color="#000000">add</font></b><font color="#990000">(</font>r<font color="#990000">,</font>BorderLayout<font color="#990000">.</font>CENTER<font color="#990000">);</font>
<font color="#000000">066:</font>             <b><font color="#000000">add</font></b><font color="#990000">(</font>p<font color="#990000">);</font>
<font color="#000000">067:</font>             <b><font color="#0000FF">new</font></b> <b><font color="#000000">Thread</font></b><font color="#990000">(</font>r<font color="#990000">).</font><b><font color="#000000">start</font></b><font color="#990000">();</font>
<font color="#000000">068:</font>         <font color="#FF0000">}</font>
<font color="#000000">069:</font>     <font color="#FF0000">}</font>
<font color="#000000">070:</font> 
<font color="#000000">071:</font>     <b><font color="#0000FF">class</font></b> <font color="#009900">Ramka</font> <b><font color="#0000FF">extends</font></b> JPanel <b><font color="#0000FF">implements</font></b> Runnable <font color="#FF0000">{</font>
<font color="#000000">072:</font> 
<font color="#000000">073:</font>         <font color="#009900">int</font> r<font color="#990000">,</font> dx<font color="#990000">,</font> dy<font color="#990000">,</font> x <font color="#990000">=</font> WI<font color="#990000">/</font><font color="#993399">2</font><font color="#990000">,</font> y <font color="#990000">=</font> HE<font color="#990000">/</font><font color="#993399">2</font><font color="#990000">,</font> tim<font color="#990000">;</font>
<font color="#000000">074:</font>         <font color="#009900">boolean</font> started   <font color="#990000">=</font> <b><font color="#0000FF">false</font></b><font color="#990000">;</font>
<font color="#000000">075:</font>         <font color="#009900">boolean</font> suspended <font color="#990000">=</font> <b><font color="#0000FF">true</font></b><font color="#990000">;</font>
<font color="#000000">076:</font> 
<font color="#000000">077:</font>         <b><font color="#0000FF">public</font></b> <b><font color="#000000">Ramka</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">078:</font>             <b><font color="#000000">setLayout</font></b><font color="#990000">(</font><b><font color="#0000FF">new</font></b> <b><font color="#000000">BorderLayout</font></b><font color="#990000">());</font>
<font color="#000000">079:</font>             <b><font color="#000000">setBackground</font></b><font color="#990000">(</font>Color<font color="#990000">.</font>BLACK<font color="#990000">);</font>
<font color="#000000">080:</font>             <b><font color="#000000">setForeground</font></b><font color="#990000">(</font>kol<font color="#990000">[</font>NUM<font color="#990000">%</font>kol<font color="#990000">.</font>length<font color="#990000">]);</font>
<font color="#000000">081:</font>             <b><font color="#000000">setPreferredSize</font></b><font color="#990000">(</font>DIM<font color="#990000">);</font>
<font color="#000000">082:</font>             <b><font color="#0000FF">do</font></b> <font color="#FF0000">{</font>dx <font color="#990000">=</font> rand<font color="#990000">.</font><b><font color="#000000">nextInt</font></b><font color="#990000">(</font> <font color="#993399">7</font><font color="#990000">)-</font><font color="#993399">3</font><font color="#990000">;</font><font color="#FF0000">}</font> <b><font color="#0000FF">while</font></b><font color="#990000">(</font>dx <font color="#990000">==</font> <font color="#993399">0</font><font color="#990000">);</font>
<font color="#000000">083:</font>             <b><font color="#0000FF">do</font></b> <font color="#FF0000">{</font>dy <font color="#990000">=</font> rand<font color="#990000">.</font><b><font color="#000000">nextInt</font></b><font color="#990000">(</font> <font color="#993399">7</font><font color="#990000">)-</font><font color="#993399">3</font><font color="#990000">;</font><font color="#FF0000">}</font> <b><font color="#0000FF">while</font></b><font color="#990000">(</font>dy <font color="#990000">==</font> <font color="#993399">0</font><font color="#990000">);</font>
<font color="#000000">084:</font>             r   <font color="#990000">=</font> rand<font color="#990000">.</font><b><font color="#000000">nextInt</font></b><font color="#990000">(</font><font color="#993399">11</font><font color="#990000">)+</font> <font color="#993399">8</font><font color="#990000">;</font>
<font color="#000000">085:</font>             tim <font color="#990000">=</font> rand<font color="#990000">.</font><b><font color="#000000">nextInt</font></b><font color="#990000">(</font><font color="#993399">51</font><font color="#990000">)+</font><font color="#993399">30</font><font color="#990000">;</font>
<font color="#000000">086:</font>             <font color="#990000">++</font>NUM<font color="#990000">;</font>
<font color="#000000">087:</font>         <font color="#FF0000">}</font>
<font color="#000000">088:</font> 
<font color="#000000">089:</font>         <b><font color="#0000FF">public</font></b> <font color="#009900">void</font> <b><font color="#000000">run</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">090:</font> 
<font color="#000000">091:</font>             <b><font color="#0000FF">synchronized</font></b><font color="#990000">(</font><b><font color="#0000FF">this</font></b><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">092:</font>                 <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">093:</font>                     <b><font color="#0000FF">while</font></b><font color="#990000">(!</font>started<font color="#990000">)</font> <b><font color="#0000FF">this</font></b><font color="#990000">.</font><b><font color="#000000">wait</font></b><font color="#990000">();</font>
<font color="#000000">094:</font>                 <font color="#FF0000">}</font> <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>InterruptedException ignore<font color="#990000">)</font> <font color="#FF0000">{</font> <font color="#FF0000">}</font>
<font color="#000000">095:</font>             <font color="#FF0000">}</font>
<font color="#000000">096:</font> 
<font color="#000000">097:</font>             <b><font color="#0000FF">while</font></b> <font color="#990000">(</font><b><font color="#0000FF">true</font></b><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">098:</font>                 <b><font color="#0000FF">synchronized</font></b><font color="#990000">(</font><b><font color="#0000FF">this</font></b><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">099:</font>                     <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">100:</font>                         <b><font color="#0000FF">while</font></b><font color="#990000">(</font>suspended<font color="#990000">)</font> <b><font color="#0000FF">this</font></b><font color="#990000">.</font><b><font color="#000000">wait</font></b><font color="#990000">();</font>
<font color="#000000">101:</font>                     <font color="#FF0000">}</font> <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>InterruptedException ignore<font color="#990000">)</font> <font color="#FF0000">{</font> <font color="#FF0000">}</font>
<font color="#000000">102:</font>                 <font color="#FF0000">}</font>
<font color="#000000">103:</font> 
<font color="#000000">104:</font>                 x <font color="#990000">+=</font> dx<font color="#990000">;</font>
<font color="#000000">105:</font>                 <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>x <font color="#990000">&gt;</font> WI<font color="#990000">-</font>r<font color="#990000">)</font> <font color="#FF0000">{</font> x <font color="#990000">=</font> WI<font color="#990000">-</font>r<font color="#990000">;</font> dx <font color="#990000">=</font> <font color="#990000">-</font>dx<font color="#990000">;</font> <font color="#FF0000">}</font>
<font color="#000000">106:</font>                 <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>x <font color="#990000">&lt;</font>    r<font color="#990000">)</font> <font color="#FF0000">{</font> x <font color="#990000">=</font>    r<font color="#990000">;</font> dx <font color="#990000">=</font> <font color="#990000">-</font>dx<font color="#990000">;</font> <font color="#FF0000">}</font>
<font color="#000000">107:</font>                 y <font color="#990000">+=</font> dy<font color="#990000">;</font>
<font color="#000000">108:</font>                 <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>y <font color="#990000">&gt;</font> HE<font color="#990000">-</font>r<font color="#990000">)</font> <font color="#FF0000">{</font> y <font color="#990000">=</font> HE<font color="#990000">-</font>r<font color="#990000">;</font> dy <font color="#990000">=</font> <font color="#990000">-</font>dy<font color="#990000">;</font><font color="#FF0000">}</font>
<font color="#000000">109:</font>                 <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>y <font color="#990000">&lt;</font>    r<font color="#990000">)</font> <font color="#FF0000">{</font> y <font color="#990000">=</font>    r<font color="#990000">;</font> dy <font color="#990000">=</font> <font color="#990000">-</font>dy<font color="#990000">;</font><font color="#FF0000">}</font>
<font color="#000000">110:</font>                 <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">111:</font>                     Thread<font color="#990000">.</font><b><font color="#000000">sleep</font></b><font color="#990000">(</font>tim<font color="#990000">);</font>
<font color="#000000">112:</font>                 <font color="#FF0000">}</font> <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>InterruptedException ignore<font color="#990000">)</font> <font color="#FF0000">{</font> <font color="#FF0000">}</font>
<font color="#000000">113:</font> 
<font color="#000000">114:</font>                 <b><font color="#000000">repaint</font></b><font color="#990000">();</font>
<font color="#000000">115:</font>                   <i><font color="#9A1900">// na wszelki wypadek</font></i>
<font color="#000000">116:</font>                 Thread<font color="#990000">.</font><b><font color="#000000">yield</font></b><font color="#990000">();</font>
<font color="#000000">117:</font>             <font color="#FF0000">}</font>
<font color="#000000">118:</font>         <font color="#FF0000">}</font>
<font color="#000000">119:</font> 
<font color="#000000">120:</font>         <b><font color="#0000FF">public</font></b> <font color="#009900">void</font> <b><font color="#000000">paintComponent</font></b><font color="#990000">(</font>Graphics g<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">121:</font>             Graphics2D g2 <font color="#990000">=</font> <font color="#990000">(</font>Graphics2D<font color="#990000">)</font>g<font color="#990000">;</font>
<font color="#000000">122:</font>             <b><font color="#0000FF">super</font></b><font color="#990000">.</font><b><font color="#000000">paintComponent</font></b><font color="#990000">(</font>g2<font color="#990000">);</font>
<font color="#000000">123:</font> 
<font color="#000000">124:</font>             g2<font color="#990000">.</font><b><font color="#000000">setRenderingHint</font></b><font color="#990000">(</font>
<font color="#000000">125:</font>                 RenderingHints<font color="#990000">.</font>KEY_ANTIALIASING<font color="#990000">,</font>
<font color="#000000">126:</font>                 RenderingHints<font color="#990000">.</font>VALUE_ANTIALIAS_ON<font color="#990000">);</font>
<font color="#000000">127:</font>             g2<font color="#990000">.</font><b><font color="#000000">fillOval</font></b><font color="#990000">(</font>x<font color="#990000">-</font>r<font color="#990000">,</font>y<font color="#990000">-</font>r<font color="#990000">,</font><font color="#993399">2</font><font color="#990000">*</font>r<font color="#990000">,</font><font color="#993399">2</font><font color="#990000">*</font>r<font color="#990000">);</font>
<font color="#000000">128:</font> 
<font color="#000000">129:</font>             <b><font color="#0000FF">if</font></b> <font color="#990000">(!</font>started<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">130:</font>                 started <font color="#990000">=</font> <b><font color="#0000FF">true</font></b><font color="#990000">;</font>
<font color="#000000">131:</font>                 <b><font color="#0000FF">synchronized</font></b><font color="#990000">(</font><b><font color="#0000FF">this</font></b><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">132:</font>                     <b><font color="#0000FF">this</font></b><font color="#990000">.</font><b><font color="#000000">notify</font></b><font color="#990000">();</font>
<font color="#000000">133:</font>                 <font color="#FF0000">}</font>
<font color="#000000">134:</font>             <font color="#FF0000">}</font>
<font color="#000000">135:</font>         <font color="#FF0000">}</font>
<font color="#000000">136:</font>     <font color="#FF0000">}</font>
<font color="#000000">137:</font> <font color="#FF0000">}</font>
<font color="#000000">138:</font> </tt></pre>
</body>
</html>
